package DAO;

import java.util.ArrayList;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Query;
import models.Estudiante;

/**
 *
 * @author eagle
 */
public class EstudianteDAO implements GeneralDAO<Estudiante, Integer> {

    private EntityManagerFactory emf;
    private EntityManager em;

    public EstudianteDAO(EntityManagerFactory emf) {
        this.emf = emf;
        em = emf.createEntityManager();
    }

    public void create(Estudiante entity) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public void update(Estudiante entity) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public void delete(Estudiante entity) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    /**
     * Metodo que busca un estudiante por su documento
     * @param doc
     * @return {@link Estudiante}
     */
    public Estudiante buscarEst(String doc) {
        Estudiante estudiante;
        try {
            Query q0 = em.createNamedQuery("Estudiante.findByDocestudiante");
            q0.setParameter("docestudiante", doc);
            estudiante = (Estudiante) q0.getResultList().get(0);
        } catch (Exception e) {
            System.out.println("Error al  buscar al estudiante: " + e);
            return null;
        } finally {
            em.close();
            closeEmf();
        }
        return estudiante;
    }

    /**
     * Metodo que cierra EntityManagerFactory
     */
    private void closeEmf() {
        emf.close();
    }
}
